/*! \file StdFileSystem.h
 *	\brief <write description for StdFileSystem.h>
 *
 *	created:	2010/07/27
 *	created:	27:7:2010   17:40
 *	filename: 	C:\src\tactics-engine\libs\io\StdFileSystem.h
 *	file path:	C:\src\tactics-engine\libs\io
 *	file base:	StdFileSystem
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _io_STDFILESYSTEM_H_
#define _io_STDFILESYSTEM_H_

#pragma once

#include "BaseFileSystem.h"
#include "Path.h"

namespace tt{
namespace io{

class StdFileSystem : public BaseFileSystem
{
public:
	StdFileSystem();
	explicit StdFileSystem(const PathW& root);
	virtual ~StdFileSystem();

private:
	virtual SharedPtr<BaseIStream> OnGetIStream(const Path&);
	virtual SharedPtr<BaseOStream> OnGetOStream(const Path&);

	virtual Bool OnIsExists(const Path&);

private:
	Path m_root; //temporary ansi
};

} //namespace io

io::StdFileSystem& ttDefaultFileSystem();

} //namespace tt

#endif //_io_STDFILESYSTEM_H_